﻿using System;
using System.Collections;
using System.Collections.Generic;
using IllusionUtility.GetUtility;
using Manager;
using UnityEngine;

// Token: 0x0200025E RID: 606
public class CharFemaleBody : global::CharBody
{
	// Token: 0x170001E8 RID: 488
	// (get) Token: 0x06000E39 RID: 3641 RVA: 0x00064558 File Offset: 0x00062758
	// (set) Token: 0x06000E3A RID: 3642 RVA: 0x00064560 File Offset: 0x00062760
	public global::CharFemaleCustom femaleCustom { get; set; }

	// Token: 0x170001E9 RID: 489
	// (get) Token: 0x06000E3B RID: 3643 RVA: 0x0006456C File Offset: 0x0006276C
	// (set) Token: 0x06000E3C RID: 3644 RVA: 0x00064574 File Offset: 0x00062774
	public global::CharFemaleClothes femaleClothes { get; set; }

	// Token: 0x170001EA RID: 490
	// (get) Token: 0x06000E3D RID: 3645 RVA: 0x00064580 File Offset: 0x00062780
	// (set) Token: 0x06000E3E RID: 3646 RVA: 0x00064588 File Offset: 0x00062788
	public GameObject[] objSiru
	{
		get
		{
			return this._objSiru;
		}
		set
		{
			this._objSiru = value;
		}
	}

	// Token: 0x170001EB RID: 491
	// (get) Token: 0x06000E3F RID: 3647 RVA: 0x00064594 File Offset: 0x00062794
	// (set) Token: 0x06000E40 RID: 3648 RVA: 0x0006459C File Offset: 0x0006279C
	public byte[] siruNewLv
	{
		get
		{
			return this._siruNewLv;
		}
		set
		{
			this._siruNewLv = value;
		}
	}

	// Token: 0x170001EC RID: 492
	// (get) Token: 0x06000E41 RID: 3649 RVA: 0x000645A8 File Offset: 0x000627A8
	// (set) Token: 0x06000E42 RID: 3650 RVA: 0x000645B0 File Offset: 0x000627B0
	public Material matHohoAka { get; set; }

	// Token: 0x170001ED RID: 493
	// (get) Token: 0x06000E43 RID: 3651 RVA: 0x000645BC File Offset: 0x000627BC
	// (set) Token: 0x06000E44 RID: 3652 RVA: 0x000645C4 File Offset: 0x000627C4
	public global::AreolaSize areola { get; set; }

	// Token: 0x170001EE RID: 494
	// (get) Token: 0x06000E45 RID: 3653 RVA: 0x000645D0 File Offset: 0x000627D0
	// (set) Token: 0x06000E46 RID: 3654 RVA: 0x000645D8 File Offset: 0x000627D8
	public Dictionary<global::CharFemaleBody.DynamicBoneKind, global::DynamicBone_Ver02> dictDynamicBone { get; set; }

	// Token: 0x170001EF RID: 495
	// (get) Token: 0x06000E47 RID: 3655 RVA: 0x000645E4 File Offset: 0x000627E4
	// (set) Token: 0x06000E48 RID: 3656 RVA: 0x000645EC File Offset: 0x000627EC
	public global::BustSoft bustSoft { get; set; }

	// Token: 0x170001F0 RID: 496
	// (get) Token: 0x06000E49 RID: 3657 RVA: 0x000645F8 File Offset: 0x000627F8
	// (set) Token: 0x06000E4A RID: 3658 RVA: 0x00064600 File Offset: 0x00062800
	public global::BustGravity bustGravity { get; set; }

	// Token: 0x170001F1 RID: 497
	// (get) Token: 0x06000E4B RID: 3659 RVA: 0x0006460C File Offset: 0x0006280C
	// (set) Token: 0x06000E4C RID: 3660 RVA: 0x00064614 File Offset: 0x00062814
	public global::BustNormal[] bustNormal
	{
		get
		{
			return this._bustNormal;
		}
		set
		{
			this._bustNormal = value;
		}
	}

	// Token: 0x06000E4D RID: 3661 RVA: 0x00064620 File Offset: 0x00062820
	public virtual void Initialize(global::CharInfo info)
	{
		base.Init(info);
		this.deleteBodyBoneName = "cf_J_Root";
		this.deleteHeadBoneName = "cf_J_FaceRoot";
		this.femaleFile = (base.chaFile as global::CharFemaleFile);
		this.femaleCustomInfo = (base.customInfo as global::CharFileInfoCustomFemale);
		this.femaleClothesInfo = (base.clothesInfo as global::CharFileInfoClothesFemale);
		this.femaleStatusInfo = (base.statusInfo as global::CharFileInfoStatusFemale);
		global::CharFemaleCustom charFemaleCustom = new global::CharFemaleCustom(info);
		this.femaleCustom = charFemaleCustom;
		base.charCustom = charFemaleCustom;
		global::CharFemaleClothes charFemaleClothes = new global::CharFemaleClothes(info);
		this.femaleClothes = charFemaleClothes;
		base.charClothes = charFemaleClothes;
		this.areola = null;
		this.bustSoft = new global::BustSoft(info as global::CharFemale);
		this.bustGravity = new global::BustGravity(info as global::CharFemale);
		this.resetupDynamicBoneBust = false;
		this.siruNewLv = new byte[Enum.GetValues(typeof(global::CharDefine.SiruParts)).Length];
		for (int i = 0; i < this.siruNewLv.Length; i++)
		{
			this.siruNewLv[i] = 0;
		}
		this.matHohoAka = null;
		base.InitBaseCustomTextureBody(1);
	}

	// Token: 0x06000E4E RID: 3662 RVA: 0x00064738 File Offset: 0x00062938
	public virtual bool Load(bool changeStatus = false)
	{
		base.StartCoroutine(this.LoadAsync(changeStatus, false));
		return true;
	}

	// Token: 0x06000E4F RID: 3663 RVA: 0x0006474C File Offset: 0x0006294C
	public virtual IEnumerator LoadAsync(bool changeStatus = false, bool asyncFlags = true)
	{
		byte[] backupState = null;
		if (changeStatus)
		{
			backupState = this.femaleStatusInfo.SaveBytes();
		}
		base.Release();
		if (asyncFlags)
		{
			yield return null;
		}
		base.objTop = new GameObject("BodyTop");
		GameObject objRoot = base.chaInfo.objRoot;
		if (objRoot)
		{
			base.objTop.transform.SetParent(objRoot.transform, false);
		}
		if (asyncFlags)
		{
			base.objTop.SetActive(false);
		}
		this.femaleCustom.AddUpdateCMBodyTexFlags(true, true, true);
		this.femaleCustom.AddUpdateCMBodyColorFlags(true, true, true);
		this.femaleCustom.CreateBodyTexture();
		this.matHohoAka = global::CommonLib.LoadAsset<Material>("chara/cf_m_base.unity3d", "cf_M_f_hohoaka", true, string.Empty);
		global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle("chara/cf_m_base.unity3d");
		if (this.matHohoAka)
		{
			this.matHohoAka.color = new Color(this.matHohoAka.color.r, this.matHohoAka.color.g, this.matHohoAka.color.b, 0f);
		}
		string assetBundleName = "chara/cf_base.unity3d";
		string assetName = "p_cf_anim";
		if (asyncFlags)
		{
			yield return base.StartCoroutine(base.Load_Coroutine<GameObject>(assetBundleName, assetName, delegate(GameObject x)
			{
				base.objAnim = x;
			}, true, false, null));
		}
		else
		{
			base.objAnim = global::CommonLib.LoadAsset<GameObject>(assetBundleName, assetName, true, string.Empty);
		}
		global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(assetBundleName);
		if (!base.objAnim)
		{
			yield break;
		}
		base.animBody = base.objAnim.GetComponent<Animator>();
		base.objAnim.transform.SetParent(base.objTop.transform, false);
		base.animIKCtrl = base.objAnim.GetComponent<global::AnimeIKCtrl>();
		if (base.animIKCtrl)
		{
			base.animIKCtrl._editInfo = base.charCustom;
		}
		this.dictDynamicBone = new Dictionary<global::CharFemaleBody.DynamicBoneKind, global::DynamicBone_Ver02>();
		global::DynamicBone_Ver02[] scrBone = base.objAnim.GetComponentsInChildren<global::DynamicBone_Ver02>(true);
		foreach (global::DynamicBone_Ver02 i in scrBone)
		{
			if (i.Comment == "muneL")
			{
				this.dictDynamicBone[global::CharFemaleBody.DynamicBoneKind.BreastL] = i;
			}
			else if (i.Comment == "muneR")
			{
				this.dictDynamicBone[global::CharFemaleBody.DynamicBoneKind.BreastR] = i;
			}
			else if (i.Comment == "Siri_L")
			{
				this.dictDynamicBone[global::CharFemaleBody.DynamicBoneKind.HipL] = i;
			}
			else if (i.Comment == "Siri_R")
			{
				this.dictDynamicBone[global::CharFemaleBody.DynamicBoneKind.HipR] = i;
			}
		}
		base.objBone = base.objAnim.transform.FindLoop("cf_J_Root");
		if (base.objBone)
		{
			GameObject objN_Hand_L = base.objBone.transform.FindLoop("N_Hand_L");
			if (null != objN_Hand_L)
			{
				GameObject objStudioHandL = new GameObject("N_Hand_L_NEO");
				objStudioHandL.transform.SetParent(objN_Hand_L.transform.parent, false);
				objStudioHandL.transform.localPosition = objN_Hand_L.transform.localPosition;
				objStudioHandL.transform.localRotation = objN_Hand_L.transform.localRotation;
				objStudioHandL.transform.localScale = Vector3.one;
			}
			this.aaWeightsBody.CreateBoneList(base.objBone, "cf_J");
			base.chaInfo.CreateReferenceInfo(1UL, base.objBone);
			global::NeckLookControllerVer2[] nlc = base.objBone.GetComponentsInChildren<global::NeckLookControllerVer2>(true);
			if (nlc.Length != 0)
			{
				base.neckLookCtrl = nlc[0];
			}
			if (base.neckLookCtrl)
			{
				base.chaInfo.ChangeLookNeckTarget(this.femaleStatusInfo.neckTargetNo, null, 1f);
				base.chaInfo.ChangeLookNeckPtn(1);
			}
			base.charCustom.InitShapeBody(base.objBone.transform);
		}
		base.ikObjRefresh = new global::CharBody.IKObjectRefresh();
		base.ikObjRefresh.CreateInfo(base.objAnim, "k_f_");
		string assetBundleName2 = "chara/cf_base.unity3d";
		string assetName2 = "p_cf_head_bone";
		if (asyncFlags)
		{
			yield return base.StartCoroutine(base.Load_Coroutine<GameObject>(assetBundleName2, assetName2, delegate(GameObject x)
			{
				base.objHeadBone = x;
			}, true, false, null));
		}
		else
		{
			base.objHeadBone = global::CommonLib.LoadAsset<GameObject>(assetBundleName2, assetName2, true, string.Empty);
		}
		global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(assetBundleName2);
		if (base.objHeadBone)
		{
			GameObject objHeadParent = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.HeadParent);
			base.objHeadBone.transform.SetParent(objHeadParent.transform, false);
			global::EyeLookController[] elc = base.objHeadBone.GetComponentsInChildren<global::EyeLookController>(true);
			if (elc.Length != 0)
			{
				base.eyeLookCtrl = elc[0];
			}
			if (base.eyeLookCtrl)
			{
				global::EyeLookCalc eyeLookCalc = base.eyeLookCtrl.GetComponent<global::EyeLookCalc>();
				if (eyeLookCalc)
				{
					eyeLookCalc.Init();
					base.chaInfo.ChangeLookEyesTarget(this.femaleStatusInfo.eyesTargetNo, null, 1f);
					base.chaInfo.ChangeLookEyesPtn(1);
				}
			}
			this.aaWeightsHead.CreateBoneList(base.objHeadBone, "cf_J");
			string assetBundleName3 = "chara/cf_base.unity3d";
			string assetName3 = "p_cf_body_00";
			if (asyncFlags)
			{
				yield return base.StartCoroutine(base.Load_Coroutine<GameObject>(assetBundleName3, assetName3, delegate(GameObject x)
				{
					base.objBody = x;
				}, true, false, null));
			}
			else
			{
				base.objBody = global::CommonLib.LoadAsset<GameObject>(assetBundleName3, assetName3, true, string.Empty);
			}
			global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(assetBundleName3);
			if (base.objBody)
			{
				base.objBody.transform.SetParent(base.objTop.transform, false);
				GameObject objRootBone = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.A_ROOTBONE);
				Transform trfRootBone = (!objRootBone) ? null : objRootBone.transform;
				this.aaWeightsBody.AssignedWeights(base.objBody, this.deleteBodyBoneName, trfRootBone);
				assetBundleName3 = "chara/cf_base.unity3d";
				assetName3 = "p_cf_body_00_Nml";
				if (this.bustNormal[0] != null)
				{
					this.bustNormal[0].Release();
				}
				this.bustNormal[0] = new global::BustNormal();
				this.bustNormal[0].Init(base.objBody, assetBundleName3, assetName3, string.Empty);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			string assetBundleName4 = "chara/cf_base.unity3d";
			string assetName4 = "p_cf_body_mnpb";
			if (asyncFlags)
			{
				yield return base.StartCoroutine(base.Load_Coroutine<GameObject>(assetBundleName4, assetName4, delegate(GameObject x)
				{
					base.objBase = x;
				}, true, false, null));
			}
			else
			{
				base.objBase = global::CommonLib.LoadAsset<GameObject>(assetBundleName4, assetName4, true, string.Empty);
			}
			global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(assetBundleName4);
			if (base.objBase)
			{
				base.objBase.transform.SetParent(base.objTop.transform, false);
				base.chaInfo.CreateReferenceInfo(8UL, base.objBase);
				base.chaInfo.CreateTagInfo(8UL, base.objBase);
				GameObject objRootBone2 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.A_ROOTBONE);
				Transform trfRootBone2 = (!objRootBone2) ? null : objRootBone2.transform;
				this.aaWeightsBody.AssignedWeights(base.objBase, this.deleteBodyBoneName, trfRootBone2);
				string[] moz = new string[]
				{
					"cf_O_mnpa",
					"cf_O_mnpb"
				};
				base.MozInit(moz);
				base.charCustom.ChangeCustomBodyWithoutCustomTexture();
				assetBundleName4 = "chara/cf_base.unity3d";
				assetName4 = "p_nip_uv";
				global::UVData uvNip = null;
				if (asyncFlags)
				{
					yield return base.StartCoroutine(base.Load_Coroutine<global::UVData>(assetBundleName4, assetName4, delegate(global::UVData x)
					{
						uvNip = x;
					}, true, false, null));
				}
				else
				{
					uvNip = global::CommonLib.LoadAsset<global::UVData>(assetBundleName4, assetName4, true, string.Empty);
				}
				global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(assetBundleName4);
				if (uvNip)
				{
					this.areola = new global::AreolaSize();
					this.areola.Init(base.objBase, uvNip);
					this.areola.Blend(this.femaleCustomInfo.areolaSize);
					UnityEngine.Object.Destroy(uvNip);
					uvNip = null;
				}
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				yield return base.StartCoroutine(this.ChangeHeadAsync(true));
			}
			else
			{
				this.ChangeHead(true);
			}
			if (asyncFlags)
			{
				yield return base.StartCoroutine(this.ChangeHairAsync(true));
			}
			else
			{
				this.ChangeHair(true);
			}
			if (asyncFlags)
			{
				yield return base.StartCoroutine(this.ChangeClothesAsync(true));
			}
			else
			{
				this.ChangeClothes(true);
			}
			if (asyncFlags)
			{
				yield return base.StartCoroutine(base.ChangeAccessoryAsync(true));
			}
			else
			{
				base.ChangeAccessory(true);
			}
			if (this.femaleClothesInfo.swimType)
			{
				this.femaleCustom.SetBodyBaseMaterial();
			}
			this.updateBustSize = true;
			this.resetupDynamicBoneBust = true;
			global::CharFemale female = base.chaInfo as global::CharFemale;
			female.hohoAkaRate = 0f;
			if (changeStatus)
			{
				this.femaleStatusInfo.LoadBytes(backupState, 4);
			}
			Resources.UnloadUnusedAssets();
			GC.Collect();
			base.LoadEnd = true;
			if (asyncFlags)
			{
				yield return null;
			}
			yield break;
		}
		yield break;
	}

	// Token: 0x06000E50 RID: 3664 RVA: 0x00064784 File Offset: 0x00062984
	public virtual void Reload(bool noChangeClothes = false, bool noChangeHead = false, bool noChangeHair = false)
	{
		this.femaleCustom.AddUpdateCMBodyTexFlags(true, true, true);
		this.femaleCustom.AddUpdateCMBodyColorFlags(true, true, true);
		this.femaleCustom.CreateBodyTexture();
		if (!noChangeHead)
		{
			this.ChangeHead(true);
		}
		if (!noChangeHair)
		{
			this.ChangeHair(true);
		}
		if (!noChangeClothes)
		{
			this.ChangeClothes(true);
			base.ChangeAccessory(true);
		}
		this.femaleCustom.UpdateShapeBodyValueFromCustomInfo();
		this.femaleCustom.UpdateShapeFaceValueFromCustomInfo();
		this.updateBustSize = true;
		this.resetupDynamicBoneBust = true;
		base.charCustom.ChangeCustomBodyWithoutCustomTexture();
		base.charClothes.UpdateClothesStateAll();
		Resources.UnloadUnusedAssets();
		GC.Collect();
	}

	// Token: 0x06000E51 RID: 3665 RVA: 0x00064830 File Offset: 0x00062A30
	public virtual void ChangeHead(bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeHeadAsync(base.customInfo.headId, forceChange, false));
	}

	// Token: 0x06000E52 RID: 3666 RVA: 0x0006484C File Offset: 0x00062A4C
	public virtual void ChangeHead(int _headId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeHeadAsync(_headId, forceChange, false));
	}

	// Token: 0x06000E53 RID: 3667 RVA: 0x00064860 File Offset: 0x00062A60
	public virtual IEnumerator ChangeHeadAsync(bool forceChange = false)
	{
		yield return base.StartCoroutine(this.ChangeHeadAsync(base.customInfo.headId, forceChange, true));
		yield break;
	}

	// Token: 0x06000E54 RID: 3668 RVA: 0x0006488C File Offset: 0x00062A8C
	public virtual IEnumerator ChangeHeadAsync(int _headId, bool forceChange = false, bool asyncFlags = true)
	{
		if (_headId == -1)
		{
			yield break;
		}
		if (!forceChange && null != base.objHead && _headId == base.customInfo.headId)
		{
			yield break;
		}
		if (base.objHead)
		{
			base.objHead.transform.SetParent(null);
			base.objHead.name = "delete";
			UnityEngine.Object.Destroy(base.objHead);
			base.objHead = null;
			base.infoHead = null;
			base.chaInfo.ReleaseRefObject(3UL);
			base.chaInfo.ReleaseTagObject(3UL);
			base.charCustom.ReleaseShapeFace();
		}
		if (asyncFlags)
		{
			IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
			{
				base.objHead = o;
			}, typeof(global::CharaListInfo.TypeFemaleFbx), 0, _headId, "cf_head", false, 0, null, 0, true, false);
			yield return base.StartCoroutine(cor);
		}
		else
		{
			base.objHead = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 0, _headId, "cf_head", false, 0, null, 0, false);
		}
		if (base.objHead)
		{
			global::CommonLib.CopySameNameTransform(base.objHeadBone.transform, base.objHead.transform);
			base.objHead.transform.SetParent(base.objHeadBone.transform, false);
			this.aaWeightsHead.AssignedWeights(base.objHead, this.deleteHeadBoneName, null);
			global::ListTypeFbxComponent ltfComponent = base.objHead.GetComponent<global::ListTypeFbxComponent>();
			global::ListTypeFbx ltfData = ltfComponent.ltfData;
			base.infoHead = ltfData;
			global::ListTypeFbx ltf = ltfData;
			base.fbsCtrl = base.objHead.GetComponent<global::FaceBlendShape>();
			if (null != base.fbsCtrl)
			{
				base.eyesCtrl = base.fbsCtrl.EyesCtrl;
				base.mouthCtrl = base.fbsCtrl.MouthCtrl;
				base.chaInfo.ChangeEyesPtn(base.statusInfo.eyesPtn, true);
				base.chaInfo.ChangeMouthPtn(base.statusInfo.mouthPtn, true);
			}
			base.customInfo.headId = ltf.Id;
			base.chaInfo.CreateReferenceInfo(3UL, base.objHeadBone);
			base.chaInfo.CreateTagInfo(3UL, base.objHeadBone);
			base.InitBaseCustomTextureFace(1, ltf.Etc[1], ltf.Etc[2]);
			this.femaleCustom.AddUpdateCMFaceTexFlags(true, true, true, true, true, true);
			this.femaleCustom.AddUpdateCMFaceColorFlags(true, true, true, true, true, true);
			this.femaleCustom.CreateFaceTexture();
			this.femaleCustom.SetFaceBaseMaterial();
			this.UpdateSiru(true);
			base.charCustom.InitShapeFace(base.objHeadBone.transform, ltf.ABPath, ltf.Etc[0]);
			base.charCustom.ChangeCustomFaceWithoutCustomTexture();
		}
		if (asyncFlags)
		{
			yield return null;
		}
		Resources.UnloadUnusedAssets();
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E55 RID: 3669 RVA: 0x000648D4 File Offset: 0x00062AD4
	public virtual void LoadMannequinHead()
	{
		string assetBundleName = "chara/cf_base.unity3d";
		string assetName = "p_cf_mannequin_head";
		base.objMannequinHead = global::CommonLib.LoadAsset<GameObject>(assetBundleName, assetName, true, string.Empty);
		global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(assetBundleName);
		if (base.objMannequinHead)
		{
			GameObject referenceInfo = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.HeadParent);
			base.objMannequinHead.transform.SetParent(referenceInfo.transform, false);
			this.aaWeightsHead.AssignedWeights(base.objMannequinHead, this.deleteHeadBoneName, null);
		}
	}

	// Token: 0x06000E56 RID: 3670 RVA: 0x00064958 File Offset: 0x00062B58
	public virtual void ChangeHair(bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeHairAsync(base.customInfo.hairId[0], base.customInfo.hairId[1], base.customInfo.hairId[2], base.customInfo.hairId[3], forceChange, false));
	}

	// Token: 0x06000E57 RID: 3671 RVA: 0x000649A8 File Offset: 0x00062BA8
	public virtual void ChangeHair(int _hairBId = -1, int _hairFId = -1, int _hairSId = -1, int _hairOId = -1, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeHairAsync(_hairBId, _hairFId, _hairSId, _hairOId, forceChange, false));
	}

	// Token: 0x06000E58 RID: 3672 RVA: 0x000649C0 File Offset: 0x00062BC0
	public virtual IEnumerator ChangeHairAsync(bool forceChange = false)
	{
		yield return base.StartCoroutine(this.ChangeHairAsync(base.customInfo.hairId[0], base.customInfo.hairId[1], base.customInfo.hairId[2], base.customInfo.hairId[3], forceChange, true));
		yield break;
	}

	// Token: 0x06000E59 RID: 3673 RVA: 0x000649EC File Offset: 0x00062BEC
	public virtual IEnumerator ChangeHairAsync(int _hairBId = -1, int _hairFId = -1, int _hairSId = -1, int _hairOId = -1, bool forceChange = false, bool asyncFlags = true)
	{
		int[] _hairId = new int[]
		{
			_hairBId,
			_hairFId,
			_hairSId,
			_hairOId
		};
		global::CharaListInfo.TypeFemaleFbx[] fbxType = new global::CharaListInfo.TypeFemaleFbx[]
		{
			global::CharaListInfo.TypeFemaleFbx.cf_f_hairB,
			global::CharaListInfo.TypeFemaleFbx.cf_f_hairF,
			global::CharaListInfo.TypeFemaleFbx.cf_f_hairS,
			global::CharaListInfo.TypeFemaleFbx.cf_f_hairO
		};
		string[] hairName = new string[]
		{
			"cf_hairB",
			"cf_hairF",
			"cf_hairS",
			"cf_hairO"
		};
		ulong[] hairTag = new ulong[]
		{
			4UL,
			5UL,
			6UL,
			7UL
		};
		int[] array = new int[4];
		array[1] = 1;
		int[] defId = array;
		for (int i = 0; i < _hairId.Length; i++)
		{
			int id = _hairId[i];
			if (id != -1)
			{
				if (forceChange || !(null != base.objHair[i]) || id != base.customInfo.hairId[i])
				{
					if (base.objHair[i])
					{
						base.objHair[i].transform.SetParent(null);
						base.objHair[i].name = "delete";
						UnityEngine.Object.Destroy(base.objHair[i]);
						base.objHair[i] = null;
						base.infoHair[i] = null;
						base.chaInfo.ReleaseTagObject(hairTag[i]);
					}
					GameObject objHairParent = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.HairParent);
					if (asyncFlags)
					{
						IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
						{
							base.objHair[i] = o;
						}, typeof(global::CharaListInfo.TypeFemaleFbx), (int)fbxType[i], id, hairName[i], false, 0, objHairParent.transform, defId[i], true, false);
						yield return base.StartCoroutine(cor);
					}
					else
					{
						base.objHair[i] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), (int)fbxType[i], id, hairName[i], false, 0, objHairParent.transform, defId[i], false);
					}
					if (base.objHair[i])
					{
						global::ListTypeFbxComponent ltfComponent = base.objHair[i].GetComponent<global::ListTypeFbxComponent>();
						global::ListTypeFbx ltf = base.infoHair[i] = ltfComponent.ltfData;
						base.customInfo.hairId[i] = ltf.Id;
						if (i == 0)
						{
							base.customInfo.hairType = ltf.Type;
						}
						base.chaInfo.CreateTagInfo(hairTag[i], base.objHair[i]);
						this.femaleCustom.ChangeHairColor(i);
						this.femaleCustom.ChangeHairAcsColor(i);
					}
				}
			}
		}
		if (asyncFlags)
		{
			yield return null;
		}
		Resources.UnloadUnusedAssets();
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E5A RID: 3674 RVA: 0x00064A64 File Offset: 0x00062C64
	public virtual void ChangeClothes(bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesAsync(base.clothesInfo.clothesId[0], base.clothesInfo.clothesId[1], base.clothesInfo.clothesId[2], base.clothesInfo.clothesId[3], base.clothesInfo.clothesId[4], base.clothesInfo.clothesId[5], base.clothesInfo.clothesId[6], base.clothesInfo.clothesId[7], base.clothesInfo.clothesId[8], base.clothesInfo.clothesId[9], base.clothesInfo.clothesId[10], forceChange, false));
	}

	// Token: 0x06000E5B RID: 3675 RVA: 0x00064B14 File Offset: 0x00062D14
	public virtual void ChangeClothes(int _topId = -1, int _botId = -1, int _braId = -1, int _shortsId = -1, int _swimId = -1, int _swimTopId = -1, int _swimBotId = -1, int _glovesId = -1, int _panstId = -1, int _socksId = -1, int _shoesId = -1, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesAsync(_topId, _botId, _braId, _shortsId, _swimId, _swimTopId, _swimBotId, _glovesId, _panstId, _socksId, _shoesId, forceChange, false));
	}

	// Token: 0x06000E5C RID: 3676 RVA: 0x00064B44 File Offset: 0x00062D44
	public virtual IEnumerator ChangeClothesAsync(bool forceChange = false)
	{
		yield return base.StartCoroutine(this.ChangeClothesAsync(base.clothesInfo.clothesId[0], base.clothesInfo.clothesId[1], base.clothesInfo.clothesId[2], base.clothesInfo.clothesId[3], base.clothesInfo.clothesId[4], base.clothesInfo.clothesId[5], base.clothesInfo.clothesId[6], base.clothesInfo.clothesId[7], base.clothesInfo.clothesId[8], base.clothesInfo.clothesId[9], base.clothesInfo.clothesId[10], forceChange, true));
		yield break;
	}

	// Token: 0x06000E5D RID: 3677 RVA: 0x00064B70 File Offset: 0x00062D70
	public virtual IEnumerator ChangeClothesAsync(int _topId = -1, int _botId = -1, int _braId = -1, int _shortsId = -1, int _swimId = -1, int _swimTopId = -1, int _swimBotId = -1, int _glovesId = -1, int _panstId = -1, int _socksId = -1, int _shoesId = -1, bool forceChange = false, bool asyncFlags = true)
	{
		if (asyncFlags)
		{
			if (this.femaleClothesInfo.swimType)
			{
				yield return base.StartCoroutine(this.ChangeClothesTopAsync(_topId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesBotAsync(_botId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesBraAsync(_braId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesShortsAsync(_shortsId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesSwimsuitAsync(_swimId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesSwimTopAsync(_swimTopId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesSwimBotAsync(_swimBotId, forceChange, true));
			}
			else
			{
				yield return base.StartCoroutine(this.ChangeClothesSwimsuitAsync(_swimId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesSwimTopAsync(_swimTopId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesSwimBotAsync(_swimBotId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesTopAsync(_topId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesBotAsync(_botId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesBraAsync(_braId, forceChange, true));
				yield return base.StartCoroutine(this.ChangeClothesShortsAsync(_shortsId, forceChange, true));
			}
			yield return base.StartCoroutine(this.ChangeClothesGlovesAsync(_glovesId, forceChange, true));
			yield return base.StartCoroutine(this.ChangeClothesPanstAsync(_panstId, forceChange, true));
			yield return base.StartCoroutine(this.ChangeClothesSocksAsync(_socksId, forceChange, true));
			yield return base.StartCoroutine(this.ChangeClothesShoesAsync(_shoesId, forceChange, true));
		}
		else
		{
			if (this.femaleClothesInfo.swimType)
			{
				this.ChangeClothesTop(_topId, forceChange);
				this.ChangeClothesBot(_botId, forceChange);
				this.ChangeClothesBra(_braId, forceChange);
				this.ChangeClothesShorts(_shortsId, forceChange);
				this.ChangeClothesSwimsuit(_swimId, forceChange);
				this.ChangeClothesSwimTop(_swimTopId, forceChange);
				this.ChangeClothesSwimBot(_swimBotId, forceChange);
			}
			else
			{
				this.ChangeClothesSwimsuit(_swimId, forceChange);
				this.ChangeClothesSwimTop(_swimTopId, forceChange);
				this.ChangeClothesSwimBot(_swimBotId, forceChange);
				this.ChangeClothesTop(_topId, forceChange);
				this.ChangeClothesBot(_botId, forceChange);
				this.ChangeClothesBra(_braId, forceChange);
				this.ChangeClothesShorts(_shortsId, forceChange);
			}
			this.ChangeClothesGloves(_glovesId, forceChange);
			this.ChangeClothesPanst(_panstId, forceChange);
			this.ChangeClothesSocks(_socksId, forceChange);
			this.ChangeClothesShoes(_shoesId, forceChange);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E5E RID: 3678 RVA: 0x00064C58 File Offset: 0x00062E58
	public virtual void ChangeClothesTop(int _topId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesTopAsync(_topId, forceChange, false));
	}

	// Token: 0x06000E5F RID: 3679 RVA: 0x00064C6C File Offset: 0x00062E6C
	public virtual IEnumerator ChangeClothesTopAsync(int _topId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 0;
		int siruKind = 0;
		if (_topId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _topId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			if (this.bustNormal[1] != null)
			{
				this.bustNormal[1].Release();
			}
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(9UL);
			base.chaInfo.ReleaseTagObject(9UL);
			base.chaInfo.ReleaseRefObject(31UL);
			this.femaleClothes.NotBra = false;
			this.femaleClothes.NotBot = false;
			this.femaleClothes.AlwaysNip = false;
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 5, _topId, "cf_clothesTop", true, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 5, _topId, "cf_clothesTop", true, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(9UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(9UL, base.objBody);
				base.chaInfo.CreateTagInfo(9UL, base.objClothes[kindNo]);
				this.femaleClothes.NotBra = (byte.Parse(ltf.Etc[2]) != 0);
				this.femaleClothes.NotBot = (byte.Parse(ltf.Etc[1]) == 2);
				this.femaleClothes.AlwaysNip = (byte.Parse(ltf.Etc[4]) != 0);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				if ("0" != ltf.BustNormal)
				{
					this.bustNormal[1] = new global::BustNormal();
					this.bustNormal[1].Init(base.objClothes[kindNo], ltf.ABPath, ltf.BustNormal, ltf.Manifest);
					this.updateBustSize = true;
				}
				this.femaleCustom.SetBodyBaseMaterial();
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 5, ltf.Id, "cf_siruTop", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 5, ltf.Id, "cf_siruTop", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(31UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E60 RID: 3680 RVA: 0x00064CB4 File Offset: 0x00062EB4
	public virtual void ChangeClothesBot(int _botId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesBotAsync(_botId, forceChange, false));
	}

	// Token: 0x06000E61 RID: 3681 RVA: 0x00064CC8 File Offset: 0x00062EC8
	public virtual IEnumerator ChangeClothesBotAsync(int _botId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 1;
		int siruKind = 1;
		if (_botId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _botId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		else
		{
			Dictionary<int, global::ListTypeFbx> dictFbx = base.chaInfo.ListInfo.GetFemaleFbxList(global::CharaListInfo.TypeFemaleFbx.cf_f_top, true);
			if (dictFbx.Count != 0)
			{
				global::ListTypeFbx ltfTop = null;
				if (dictFbx.TryGetValue(this.femaleClothesInfo.clothesId[0], out ltfTop) && "2" == ltfTop.Etc[1])
				{
					load = false;
					release = true;
				}
			}
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(10UL);
			base.chaInfo.ReleaseTagObject(10UL);
			base.chaInfo.ReleaseRefObject(32UL);
			this.femaleClothes.NotShorts = false;
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 6, _botId, "cf_clothesBot", true, 1, base.objTop.transform, 20, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 6, _botId, "cf_clothesBot", true, 1, base.objTop.transform, 20, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(10UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(10UL, base.objClothes[kindNo]);
				this.femaleClothes.NotShorts = (byte.Parse(ltf.Etc[3]) != 0);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 6, ltf.Id, "cf_siruBot", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 6, ltf.Id, "cf_siruBot", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(32UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E62 RID: 3682 RVA: 0x00064D10 File Offset: 0x00062F10
	public virtual void ChangeClothesBra(int _braId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesBraAsync(_braId, forceChange, false));
	}

	// Token: 0x06000E63 RID: 3683 RVA: 0x00064D24 File Offset: 0x00062F24
	public virtual IEnumerator ChangeClothesBraAsync(int _braId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 2;
		int siruKind = 2;
		if (_braId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _braId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			if (this.bustNormal[2] != null)
			{
				this.bustNormal[2].Release();
			}
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(14UL);
			base.chaInfo.ReleaseTagObject(14UL);
			base.chaInfo.ReleaseRefObject(33UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 7, _braId, "cf_bra", false, 1, base.objTop.transform, 1, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 7, _braId, "cf_bra", false, 1, base.objTop.transform, 1, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(14UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(14UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				if ("0" != ltf.BustNormal)
				{
					this.bustNormal[2] = new global::BustNormal();
					this.bustNormal[2].Init(base.objClothes[kindNo], ltf.ABPath, ltf.BustNormal, ltf.Manifest);
					this.updateBustSize = true;
				}
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 7, ltf.Id, "cf_siruBra", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 7, ltf.Id, "cf_siruBra", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(33UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E64 RID: 3684 RVA: 0x00064D6C File Offset: 0x00062F6C
	public virtual void ChangeClothesShorts(int _shortsId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesShortsAsync(_shortsId, forceChange, false));
	}

	// Token: 0x06000E65 RID: 3685 RVA: 0x00064D80 File Offset: 0x00062F80
	public virtual IEnumerator ChangeClothesShortsAsync(int _shortsId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 3;
		int siruKind = 3;
		if (_shortsId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _shortsId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(15UL);
			base.chaInfo.ReleaseTagObject(15UL);
			base.chaInfo.ReleaseRefObject(34UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 8, _shortsId, "cf_shorts", false, 1, base.objTop.transform, 1, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 8, _shortsId, "cf_shorts", false, 1, base.objTop.transform, 1, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(15UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(15UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 8, ltf.Id, "cf_siruShorts", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 8, ltf.Id, "cf_siruShorts", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(34UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E66 RID: 3686 RVA: 0x00064DC8 File Offset: 0x00062FC8
	public virtual void ChangeClothesSwimsuit(int _swimId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesSwimsuitAsync(_swimId, forceChange, false));
	}

	// Token: 0x06000E67 RID: 3687 RVA: 0x00064DDC File Offset: 0x00062FDC
	public virtual IEnumerator ChangeClothesSwimsuitAsync(int _swimId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 4;
		int siruKind = 4;
		if (_swimId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _swimId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (!this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			if (this.bustNormal[3] != null)
			{
				this.bustNormal[3].Release();
			}
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(11UL);
			base.chaInfo.ReleaseTagObject(11UL);
			base.chaInfo.ReleaseTagObject(9UL);
			base.chaInfo.ReleaseRefObject(35UL);
			this.femaleClothes.SwimsuitNoSeparate = false;
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 9, _swimId, "cf_swimsuit", true, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 9, _swimId, "cf_swimsuit", true, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(11UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(11UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(9UL, base.objBody);
				this.femaleClothes.SwimsuitNoSeparate = (byte.Parse(ltf.Etc[1]) != 0);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				int stateTopKind = 4;
				int stateBotKind = 5;
				this.femaleClothes.SetClothesState(stateTopKind, this.femaleStatusInfo.clothesState[stateTopKind]);
				this.femaleClothes.SetClothesState(stateBotKind, this.femaleStatusInfo.clothesState[stateBotKind]);
				if ("0" != ltf.BustNormal)
				{
					this.bustNormal[3] = new global::BustNormal();
					this.bustNormal[3].Init(base.objClothes[kindNo], ltf.ABPath, ltf.BustNormal, ltf.Manifest);
					this.updateBustSize = true;
				}
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 9, ltf.Id, "cf_siruSwim", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 9, ltf.Id, "cf_siruSwim", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(35UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E68 RID: 3688 RVA: 0x00064E24 File Offset: 0x00063024
	public virtual void ChangeClothesSwimTop(int _swimTopId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesSwimTopAsync(_swimTopId, forceChange, false));
	}

	// Token: 0x06000E69 RID: 3689 RVA: 0x00064E38 File Offset: 0x00063038
	public virtual IEnumerator ChangeClothesSwimTopAsync(int _swimTopId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 5;
		int siruKind = 0;
		if (_swimTopId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _swimTopId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (!this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			if (this.bustNormal[1] != null)
			{
				this.bustNormal[1].Release();
			}
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(12UL);
			base.chaInfo.ReleaseTagObject(12UL);
			base.chaInfo.ReleaseRefObject(31UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 10, _swimTopId, "cf_swimTop", true, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 10, _swimTopId, "cf_swimTop", true, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(12UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(12UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				if ("0" != ltf.BustNormal)
				{
					this.bustNormal[1] = new global::BustNormal();
					this.bustNormal[1].Init(base.objBody, ltf.ABPath, ltf.BustNormal, ltf.Manifest);
					this.updateBustSize = true;
				}
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 10, ltf.Id, "cf_siruTop", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 10, ltf.Id, "cf_siruTop", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(31UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E6A RID: 3690 RVA: 0x00064E80 File Offset: 0x00063080
	public virtual void ChangeClothesSwimBot(int _swimBotId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesSwimBotAsync(_swimBotId, forceChange, false));
	}

	// Token: 0x06000E6B RID: 3691 RVA: 0x00064E94 File Offset: 0x00063094
	public virtual IEnumerator ChangeClothesSwimBotAsync(int _swimBotId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 6;
		int siruKind = 1;
		if (_swimBotId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _swimBotId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (!this.femaleClothesInfo.swimType)
		{
			load = false;
			release = true;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			UnityEngine.Object.Destroy(this.objSiru[siruKind]);
			base.objClothes[kindNo] = null;
			this.objSiru[siruKind] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(13UL);
			base.chaInfo.ReleaseTagObject(13UL);
			base.chaInfo.ReleaseRefObject(32UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 11, _swimBotId, "cf_swimBot", true, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 11, _swimBotId, "cf_swimBot", true, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(13UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(13UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
				if (asyncFlags)
				{
					IEnumerator cor2 = this.LoadSiruFbxDataAsync(delegate(GameObject o)
					{
						this.objSiru[siruKind] = o;
					}, typeof(global::CharaListInfo.TypeFemaleFbx), 11, ltf.Id, "cf_siruBot", base.objClothes[kindNo].transform, true);
					yield return base.StartCoroutine(cor2);
				}
				else
				{
					this.objSiru[siruKind] = this.LoadSiruFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 11, ltf.Id, "cf_siruBot", base.objClothes[kindNo].transform);
				}
				if (this.objSiru[siruKind])
				{
					base.chaInfo.CreateReferenceInfo(32UL, this.objSiru[siruKind]);
				}
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E6C RID: 3692 RVA: 0x00064EDC File Offset: 0x000630DC
	public virtual void ChangeClothesGloves(int _glovesId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesGlovesAsync(_glovesId, forceChange, false));
	}

	// Token: 0x06000E6D RID: 3693 RVA: 0x00064EF0 File Offset: 0x000630F0
	public virtual IEnumerator ChangeClothesGlovesAsync(int _glovesId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 7;
		if (_glovesId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _glovesId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			base.objClothes[kindNo] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseTagObject(17UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 12, _glovesId, "cf_gloves", false, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 12, _glovesId, "cf_gloves", false, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateTagInfo(17UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E6E RID: 3694 RVA: 0x00064F38 File Offset: 0x00063138
	public virtual void ChangeClothesPanst(int _panstId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesPanstAsync(_panstId, forceChange, false));
	}

	// Token: 0x06000E6F RID: 3695 RVA: 0x00064F4C File Offset: 0x0006314C
	public virtual IEnumerator ChangeClothesPanstAsync(int _panstId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 8;
		if (_panstId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _panstId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			base.objClothes[kindNo] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseRefObject(16UL);
			base.chaInfo.ReleaseTagObject(16UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 13, _panstId, "cf_panst", false, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 13, _panstId, "cf_panst", false, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateReferenceInfo(16UL, base.objClothes[kindNo]);
				base.chaInfo.CreateTagInfo(16UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E70 RID: 3696 RVA: 0x00064F94 File Offset: 0x00063194
	public virtual void ChangeClothesSocks(int _socksId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesSocksAsync(_socksId, forceChange, false));
	}

	// Token: 0x06000E71 RID: 3697 RVA: 0x00064FA8 File Offset: 0x000631A8
	public virtual IEnumerator ChangeClothesSocksAsync(int _socksId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 9;
		if (_socksId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _socksId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			base.objClothes[kindNo] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseTagObject(18UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 14, _socksId, "cf_socks", false, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 14, _socksId, "cf_socks", false, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateTagInfo(18UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E72 RID: 3698 RVA: 0x00064FF0 File Offset: 0x000631F0
	public virtual void ChangeClothesShoes(int _shoesId, bool forceChange = false)
	{
		base.StartCoroutine(this.ChangeClothesShoesAsync(_shoesId, forceChange, false));
	}

	// Token: 0x06000E73 RID: 3699 RVA: 0x00065004 File Offset: 0x00063204
	public virtual IEnumerator ChangeClothesShoesAsync(int _shoesId, bool forceChange = false, bool asyncFlags = true)
	{
		bool load = true;
		bool release = true;
		int kindNo = 10;
		if (_shoesId == -1)
		{
			load = false;
			release = false;
		}
		if (!forceChange && null != base.objClothes[kindNo] && _shoesId == this.femaleClothesInfo.clothesId[kindNo])
		{
			load = false;
			release = false;
		}
		if (release && base.objClothes[kindNo])
		{
			UnityEngine.Object.Destroy(base.objClothes[kindNo]);
			base.objClothes[kindNo] = null;
			base.infoClothes[kindNo] = null;
			base.chaInfo.ReleaseTagObject(19UL);
			this.femaleClothes.RemoveStateKind(kindNo);
		}
		if (load)
		{
			if (asyncFlags)
			{
				yield return null;
			}
			if (asyncFlags)
			{
				IEnumerator cor = base.LoadCharaFbxDataAsync(delegate(GameObject o)
				{
					base.objClothes[kindNo] = o;
				}, typeof(global::CharaListInfo.TypeFemaleFbx), 15, _shoesId, "cf_shoes", false, 1, base.objTop.transform, 0, true, false);
				yield return base.StartCoroutine(cor);
			}
			else
			{
				base.objClothes[kindNo] = base.LoadCharaFbxData(typeof(global::CharaListInfo.TypeFemaleFbx), 15, _shoesId, "cf_shoes", false, 1, base.objTop.transform, 0, false);
			}
			if (asyncFlags)
			{
				yield return null;
			}
			if (base.objClothes[kindNo])
			{
				global::ListTypeFbxComponent ltfComponent = base.objClothes[kindNo].GetComponent<global::ListTypeFbxComponent>();
				global::ListTypeFbx ltf = base.infoClothes[kindNo] = ltfComponent.ltfData;
				base.clothesInfo.clothesId[kindNo] = ltf.Id;
				base.chaInfo.CreateTagInfo(19UL, base.objClothes[kindNo]);
				this.femaleClothes.AddStateKind(kindNo, ltf.Etc[0]);
			}
		}
		if (base.objClothes[kindNo])
		{
			this.femaleClothes.ChangeClothesColor(kindNo);
		}
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E74 RID: 3700 RVA: 0x0006504C File Offset: 0x0006324C
	public virtual GameObject LoadSiruFbxData(Type type, int typeNo, int id, string createName, Transform trfParent)
	{
		GameObject actObj = null;
		base.StartCoroutine(this.LoadSiruFbxDataAsync(delegate(GameObject o)
		{
			actObj = o;
		}, type, typeNo, id, createName, trfParent, false));
		return actObj;
	}

	// Token: 0x06000E75 RID: 3701 RVA: 0x00065090 File Offset: 0x00063290
	public virtual IEnumerator LoadSiruFbxDataAsync(Action<GameObject> actObj, Type type, int typeNo, int id, string createName, Transform trfParent, bool asyncFlags = true)
	{
		Dictionary<int, global::ListTypeFbx> work = base.chaInfo.ListInfo.GetFemaleFbxList((global::CharaListInfo.TypeFemaleFbx)typeNo, true);
		if (work.Count == 0)
		{
			actObj(null);
			yield break;
		}
		global::ListTypeFbx ltf = null;
		if (!work.TryGetValue(id, out ltf) && ltf == null)
		{
			actObj(null);
			yield break;
		}
		if ("0" == ltf.SiruABPath)
		{
			yield break;
		}
		GameObject newObj = null;
		if (asyncFlags)
		{
			yield return base.StartCoroutine(base.Load_Coroutine<GameObject>(ltf.SiruABPath, ltf.SiruPrefab, delegate(GameObject x)
			{
				newObj = x;
			}, true, false, null));
		}
		else
		{
			newObj = global::CommonLib.LoadAsset<GameObject>(ltf.SiruABPath, ltf.SiruPrefab, true, ltf.SiruManifest);
		}
		global::Singleton<Manager.Character>.Instance.AddLoadAssetBundle(ltf.SiruABPath);
		if (null == newObj)
		{
			actObj(null);
			yield break;
		}
		newObj.name = createName;
		if (trfParent)
		{
			newObj.transform.SetParent(trfParent, false);
		}
		GameObject objRootBone = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.A_ROOTBONE);
		Transform trfRootBone = (!objRootBone) ? null : objRootBone.transform;
		this.aaWeightsBody.AssignedWeights(newObj, this.deleteBodyBoneName, trfRootBone);
		actObj(newObj);
		if (asyncFlags)
		{
			yield return null;
		}
		yield break;
	}

	// Token: 0x06000E76 RID: 3702 RVA: 0x00065108 File Offset: 0x00063308
	public virtual bool UpdateSiru(bool forceChange = false)
	{
		if (!(null == base.customMatFace))
		{
			int num = 0;
			if (forceChange || this.femaleStatusInfo.siruLv[num] != this.siruNewLv[num])
			{
				this.femaleStatusInfo.siruLv[num] = this.siruNewLv[num];
				int num2 = 3;
				if (this.siruNewLv[num] == 0)
				{
					num2 = 2;
				}
				Material[] array = new Material[num2];
				array[0] = base.customMatFace;
				array[1] = this.matHohoAka;
				List<GameObject> tagInfo = base.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjSkinFace);
				Material[] materials = tagInfo[0].GetComponent<Renderer>().materials;
				int num3 = materials.Length;
				if (2 <= num3)
				{
					array[1] = materials[1];
				}
				if (this.siruNewLv[num] != 0)
				{
					string key = global::CharDefine.SiruParts.SiruKao.ToString() + this.siruNewLv[num].ToString("00");
					Material material = null;
					if (global::Singleton<Manager.Character>.Instance.dictSiruMaterial.TryGetValue(key, out material))
					{
						array[2] = material;
					}
				}
				for (int i = 0; i < tagInfo.Count; i++)
				{
					if (!(null == tagInfo[i]))
					{
						tagInfo[i].GetComponent<Renderer>().materials = array;
					}
				}
			}
		}
		if (!(null == base.customMatBody))
		{
			global::CharDefine.SiruParts[] array2 = new global::CharDefine.SiruParts[]
			{
				global::CharDefine.SiruParts.SiruFrontUp,
				global::CharDefine.SiruParts.SiruFrontDown,
				global::CharDefine.SiruParts.SiruBackUp,
				global::CharDefine.SiruParts.SiruBackDown
			};
			List<string> list = new List<string>();
			bool flag = false;
			for (int j = 0; j < array2.Length; j++)
			{
				if (forceChange || this.femaleStatusInfo.siruLv[(int)array2[j]] != this.siruNewLv[(int)array2[j]])
				{
					flag = true;
				}
				if (this.siruNewLv[(int)array2[j]] != 0)
				{
					string item = array2[j].ToString() + this.siruNewLv[(int)array2[j]].ToString("00");
					list.Add(item);
				}
				this.femaleStatusInfo.siruLv[(int)array2[j]] = this.siruNewLv[(int)array2[j]];
			}
			if (flag)
			{
				int num4 = 1 + list.Count;
				Material[] array3 = new Material[num4];
				array3[0] = base.customMatBody;
				for (int k = 0; k < list.Count; k++)
				{
					Material material2 = null;
					if (global::Singleton<Manager.Character>.Instance.dictSiruMaterial.TryGetValue(list[k], out material2))
					{
						array3[1 + k] = material2;
					}
				}
				List<GameObject> tagInfo2 = base.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjSkinBody);
				for (int l = 0; l < tagInfo2.Count; l++)
				{
					if (!(null == tagInfo2[l]))
					{
						tagInfo2[l].GetComponent<Renderer>().materials = array3;
					}
				}
			}
		}
		return true;
	}

	// Token: 0x06000E77 RID: 3703 RVA: 0x00065410 File Offset: 0x00063610
	public virtual global::DynamicBone_Ver02 getDynamicBone(global::CharFemaleBody.DynamicBoneKind _eArea)
	{
		global::DynamicBone_Ver02 result = null;
		this.dictDynamicBone.TryGetValue(_eArea, out result);
		return result;
	}

	// Token: 0x06000E78 RID: 3704 RVA: 0x00065430 File Offset: 0x00063630
	public virtual bool InitializeExpression(bool _enable = true)
	{
		string text = "list/expression.unity3d";
		string text2 = "cf_expression";
		if (!global::AssetBundleCheck.IsFile(text, text2))
		{
			string message = "読み込みエラー\r\nassetBundleName：" + text + "\tassetName：" + text2;
			global::Debug.LogWarning(message);
			return false;
		}
		base.expression = base.chaInfo.objRoot.AddComponent<global::Expression>();
		base.expression.LoadSetting(text, text2);
		base.expression.SetCharaTransform(base.chaInfo.objRoot.transform);
		base.expression.Initialize();
		base.expression.enable = _enable;
		return true;
	}

	// Token: 0x06000E79 RID: 3705 RVA: 0x000654C8 File Offset: 0x000636C8
	public override void ReleaseSub()
	{
		this.dictDynamicBone = null;
		for (int i = 0; i < this.objSiru.Length; i++)
		{
			this.objSiru[i] = null;
		}
		for (int j = 0; j < this.siruNewLv.Length; j++)
		{
			this.siruNewLv[j] = 0;
		}
		UnityEngine.Object.Destroy(this.matHohoAka);
		this.matHohoAka = null;
		this.areola = null;
		for (int k = 0; k < this.bustNormal.Length; k++)
		{
			if (this.bustNormal[k] != null)
			{
				this.bustNormal[k].Release();
			}
			this.bustNormal[k] = null;
		}
		this.femaleClothes.NotBra = false;
		this.femaleClothes.NotShorts = false;
		this.femaleClothes.NotBot = false;
		this.femaleClothes.AlwaysNip = false;
		this.femaleClothes.SwimsuitNoSeparate = false;
		this.femaleClothes.dictStateType.Clear();
	}

	// Token: 0x06000E7A RID: 3706 RVA: 0x000655C4 File Offset: 0x000637C4
	public override void UpdateVisible()
	{
		bool flag = false;
		bool[] array = new bool[]
		{
			true,
			true,
			true,
			true
		};
		bool[] array2 = new bool[]
		{
			true,
			true,
			true,
			true
		};
		bool[] array3 = new bool[]
		{
			true,
			true
		};
		bool[] array4 = new bool[]
		{
			true,
			true
		};
		bool[] array5 = new bool[]
		{
			true,
			true,
			true,
			true
		};
		bool[] array6 = new bool[]
		{
			true,
			true,
			true,
			true
		};
		bool[] array7 = new bool[]
		{
			true,
			true,
			true,
			true
		};
		if (!this.femaleClothesInfo.swimType && !base.charClothes.IsStateType(0, 1) && this.femaleStatusInfo.clothesState[0] == 1)
		{
			this.femaleStatusInfo.clothesState[0] = 2;
		}
		bool[] flags = new bool[]
		{
			base.chaInfo.visibleAll
		};
		if (global::YS_Assist.SetActiveControl(base.objBase, flags))
		{
			flag = true;
		}
		bool[] array8 = new bool[]
		{
			this.femaleStatusInfo.clothesState[0] != 0
		};
		if (this.femaleClothes.AlwaysNip)
		{
			array8[0] = true;
		}
		if (this.femaleClothesInfo.swimType)
		{
			array8[0] = true;
		}
		GameObject referenceInfo = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_NIP);
		if (global::YS_Assist.SetActiveControl(referenceInfo, array8))
		{
			flag = true;
		}
		bool[] flags2 = new bool[]
		{
			this.femaleStatusInfo.tongueState != 0
		};
		GameObject referenceInfo2 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_TongueB);
		if (global::YS_Assist.SetActiveControl(referenceInfo2, flags2))
		{
			flag = true;
		}
		global::CharFemale charFemale = base.chaInfo as global::CharFemale;
		bool[] flags3 = new bool[]
		{
			!charFemale.hideMoz,
			!this.mannequinMode
		};
		GameObject referenceInfo3 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_MNPB);
		if (global::YS_Assist.SetActiveControl(referenceInfo3, flags3))
		{
			flag = true;
		}
		bool flag2 = true;
		if (!this.femaleClothesInfo.swimType && this.femaleStatusInfo.clothesState[0] != 2)
		{
			flag2 = false;
		}
		bool[] flags4 = new bool[]
		{
			base.chaInfo.visibleAll,
			flag2
		};
		if (global::YS_Assist.SetActiveControl(base.objBody, flags4))
		{
			flag = true;
		}
		bool[] flags5 = new bool[]
		{
			base.chaInfo.visibleAll,
			!this.mannequinMode
		};
		if (global::YS_Assist.SetActiveControl(base.objHead, flags5))
		{
			flag = true;
		}
		bool[] flags6 = new bool[]
		{
			this.mannequinMode
		};
		if (global::YS_Assist.SetActiveControl(base.objMannequinHead, flags6))
		{
			flag = true;
		}
		bool[] flags7 = new bool[]
		{
			this.femaleStatusInfo.tongueState == 0
		};
		GameObject referenceInfo4 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_TongueF);
		if (global::YS_Assist.SetActiveControl(referenceInfo4, flags7))
		{
			flag = true;
		}
		bool[,] array9 = new bool[,]
		{
			{
				false,
				false,
				false
			},
			{
				true,
				false,
				false
			},
			{
				true,
				true,
				false
			},
			{
				true,
				true,
				true
			}
		};
		GameObject[] array10 = new GameObject[]
		{
			base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_TEARS_01),
			base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_TEARS_02),
			base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_TEARS_03)
		};
		for (int i = 0; i < 3; i++)
		{
			if (!(null == array10[i]))
			{
				if (array9[(int)this.femaleStatusInfo.tearsLv, i] != array10[i].activeSelf)
				{
					array10[i].SetActive(array9[(int)this.femaleStatusInfo.tearsLv, i]);
					flag = true;
				}
			}
		}
		bool[] flags8 = new bool[]
		{
			base.chaInfo.visibleAll,
			!this.mannequinMode
		};
		foreach (GameObject obj in base.objHair)
		{
			if (global::YS_Assist.SetActiveControl(obj, flags8))
			{
				flag = true;
			}
		}
		bool[] flags9 = new bool[]
		{
			base.chaInfo.visibleAll
		};
		if (global::YS_Assist.SetActiveControl(base.objClothes[0], flags9))
		{
			flag = true;
		}
		if (!this.femaleClothesInfo.swimType)
		{
			bool[] flags10 = new bool[]
			{
				this.femaleStatusInfo.clothesState[0] == 0
			};
			array[0] = global::YS_Assist.CheckFlagsArray(flags10);
			GameObject referenceInfo5 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CTOP_T_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo5, array[0]))
			{
				flag = true;
			}
			bool[] flags11 = new bool[]
			{
				this.femaleStatusInfo.clothesState[0] == 1
			};
			array[1] = global::YS_Assist.CheckFlagsArray(flags11);
			referenceInfo5 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CTOP_T_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo5, array[1]))
			{
				flag = true;
			}
			bool[] flags12 = new bool[]
			{
				this.femaleStatusInfo.clothesState[1] == 0,
				this.femaleStatusInfo.clothesState[0] != 2
			};
			array[2] = global::YS_Assist.CheckFlagsArray(flags12);
			referenceInfo5 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CTOP_B_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo5, array[2]))
			{
				flag = true;
			}
			bool[] flags13 = new bool[]
			{
				this.femaleStatusInfo.clothesState[1] != 0,
				this.femaleStatusInfo.clothesState[0] != 2
			};
			array[3] = global::YS_Assist.CheckFlagsArray(flags13);
			referenceInfo5 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CTOP_B_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo5, array[3]))
			{
				flag = true;
			}
			bool[] flags14 = new bool[]
			{
				base.chaInfo.visibleAll,
				!this.femaleClothes.NotBot
			};
			if (global::YS_Assist.SetActiveControl(base.objClothes[1], flags14))
			{
				flag = true;
			}
			bool[] flags15 = new bool[]
			{
				this.femaleStatusInfo.clothesState[1] == 0
			};
			array2[0] = global::YS_Assist.CheckFlagsArray(flags15);
			GameObject referenceInfo6 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CBOT_B_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo6, array2[0]))
			{
				flag = true;
			}
			bool[] flags16 = new bool[]
			{
				this.femaleStatusInfo.clothesState[1] == 1
			};
			array2[1] = global::YS_Assist.CheckFlagsArray(flags16);
			referenceInfo6 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CBOT_B_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo6, array2[1]))
			{
				flag = true;
			}
			bool[] flags17 = new bool[]
			{
				this.femaleStatusInfo.clothesState[0] == 0,
				this.femaleStatusInfo.clothesState[1] != 2
			};
			array2[2] = global::YS_Assist.CheckFlagsArray(flags17);
			referenceInfo6 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CBOT_T_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo6, array2[2]))
			{
				flag = true;
			}
			bool[] flags18 = new bool[]
			{
				this.femaleStatusInfo.clothesState[0] != 0,
				this.femaleStatusInfo.clothesState[1] != 2
			};
			array2[3] = global::YS_Assist.CheckFlagsArray(flags18);
			referenceInfo6 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_CBOT_T_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo6, array2[3]))
			{
				flag = true;
			}
			bool[] array11 = new bool[]
			{
				base.chaInfo.visibleAll,
				this.femaleStatusInfo.clothesState[2] != 2,
				!this.femaleClothes.NotBra,
				this.femaleStatusInfo.clothesState[0] != 0
			};
			if (this.femaleClothes.AlwaysNip)
			{
				array11[3] = true;
			}
			if (global::YS_Assist.SetActiveControl(base.objClothes[2], array11))
			{
				flag = true;
			}
			bool[] flags19 = new bool[]
			{
				this.femaleStatusInfo.clothesState[2] == 0
			};
			array3[0] = global::YS_Assist.CheckFlagsArray(flags19);
			GameObject referenceInfo7 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_BRA_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo7, array3[0]))
			{
				flag = true;
			}
			bool[] flags20 = new bool[]
			{
				this.femaleStatusInfo.clothesState[2] == 1
			};
			array3[1] = global::YS_Assist.CheckFlagsArray(flags20);
			referenceInfo7 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_BRA_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo7, array3[1]))
			{
				flag = true;
			}
			bool[] flags21 = new bool[]
			{
				base.chaInfo.visibleAll,
				this.femaleStatusInfo.clothesState[3] != 2,
				!this.femaleClothes.NotShorts
			};
			if (global::YS_Assist.SetActiveControl(base.objClothes[3], flags21))
			{
				flag = true;
			}
			bool[] flags22 = new bool[]
			{
				this.femaleStatusInfo.clothesState[3] == 0
			};
			array4[0] = global::YS_Assist.CheckFlagsArray(flags22);
			GameObject referenceInfo8 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SHORTS_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo8, array4[0]))
			{
				flag = true;
			}
			bool[] flags23 = new bool[]
			{
				this.femaleStatusInfo.clothesState[3] == 1
			};
			array4[1] = global::YS_Assist.CheckFlagsArray(flags23);
			referenceInfo8 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SHORTS_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo8, array4[1]))
			{
				flag = true;
			}
		}
		bool[] flags24 = new bool[]
		{
			base.chaInfo.visibleAll,
			this.femaleStatusInfo.clothesState[8] == 0
		};
		if (global::YS_Assist.SetActiveControl(base.objClothes[7], flags24))
		{
			flag = true;
		}
		bool[] flags25 = new bool[]
		{
			base.chaInfo.visibleAll,
			this.femaleStatusInfo.clothesState[9] != 2
		};
		if (global::YS_Assist.SetActiveControl(base.objClothes[8], flags25))
		{
			flag = true;
		}
		bool[] flags26 = new bool[]
		{
			this.femaleStatusInfo.clothesState[9] == 0
		};
		GameObject referenceInfo9 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_PANST_DEF);
		if (global::YS_Assist.SetActiveControl(referenceInfo9, flags26))
		{
			flag = true;
		}
		bool[] flags27 = new bool[]
		{
			this.femaleStatusInfo.clothesState[9] == 1
		};
		referenceInfo9 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_PANST_NUGE);
		if (global::YS_Assist.SetActiveControl(referenceInfo9, flags27))
		{
			flag = true;
		}
		bool[] flags28 = new bool[]
		{
			base.chaInfo.visibleAll,
			this.femaleStatusInfo.clothesState[10] == 0
		};
		if (global::YS_Assist.SetActiveControl(base.objClothes[9], flags28))
		{
			flag = true;
		}
		bool[] flags29 = new bool[]
		{
			base.chaInfo.visibleAll,
			this.femaleStatusInfo.clothesState[11] == 0
		};
		if (global::YS_Assist.SetActiveControl(base.objClothes[10], flags29))
		{
			flag = true;
		}
		if (this.femaleClothesInfo.swimType)
		{
			bool[] flags30 = new bool[]
			{
				base.chaInfo.visibleAll
			};
			if (global::YS_Assist.SetActiveControl(base.objClothes[4], flags30))
			{
				flag = true;
			}
			bool[] flags31 = new bool[]
			{
				this.femaleStatusInfo.clothesState[4] == 0
			};
			array5[0] = global::YS_Assist.CheckFlagsArray(flags31);
			GameObject referenceInfo10 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SWIM_T_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo10, array5[0]))
			{
				flag = true;
			}
			bool[] flags32 = new bool[]
			{
				this.femaleStatusInfo.clothesState[4] == 1
			};
			array5[1] = global::YS_Assist.CheckFlagsArray(flags32);
			referenceInfo10 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SWIM_T_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo10, array5[1]))
			{
				flag = true;
			}
			bool[] flags33 = new bool[]
			{
				this.femaleStatusInfo.clothesState[5] == 0
			};
			array5[2] = global::YS_Assist.CheckFlagsArray(flags33);
			referenceInfo10 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SWIM_B_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo10, array5[2]))
			{
				flag = true;
			}
			bool[] flags34 = new bool[]
			{
				this.femaleStatusInfo.clothesState[5] == 1
			};
			array5[3] = global::YS_Assist.CheckFlagsArray(flags34);
			referenceInfo10 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SWIM_B_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo10, array5[3]))
			{
				flag = true;
			}
			bool[] flags35 = new bool[]
			{
				!this.femaleClothesInfo.hideSwimOptTop,
				this.femaleStatusInfo.clothesState[4] != 2
			};
			referenceInfo10 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SWIM_T_OPT);
			if (global::YS_Assist.SetActiveControl(referenceInfo10, flags35))
			{
				flag = true;
			}
			bool[] flags36 = new bool[]
			{
				!this.femaleClothesInfo.hideSwimOptBot,
				this.femaleStatusInfo.clothesState[5] != 2
			};
			referenceInfo10 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SWIM_B_OPT);
			if (global::YS_Assist.SetActiveControl(referenceInfo10, flags36))
			{
				flag = true;
			}
			bool[] flags37 = new bool[]
			{
				base.chaInfo.visibleAll
			};
			if (global::YS_Assist.SetActiveControl(base.objClothes[5], flags37))
			{
				flag = true;
			}
			bool[] flags38 = new bool[]
			{
				this.femaleStatusInfo.clothesState[6] == 0
			};
			array6[0] = global::YS_Assist.CheckFlagsArray(flags38);
			GameObject referenceInfo11 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_STOP_T_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo11, array6[0]))
			{
				flag = true;
			}
			bool[] flags39 = new bool[]
			{
				this.femaleStatusInfo.clothesState[6] == 1
			};
			array6[1] = global::YS_Assist.CheckFlagsArray(flags39);
			referenceInfo11 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_STOP_T_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo11, array6[1]))
			{
				flag = true;
			}
			bool[] flags40 = new bool[]
			{
				this.femaleStatusInfo.clothesState[7] == 0,
				this.femaleStatusInfo.clothesState[6] != 2
			};
			array6[2] = global::YS_Assist.CheckFlagsArray(flags40);
			referenceInfo11 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_STOP_B_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo11, array6[2]))
			{
				flag = true;
			}
			bool[] flags41 = new bool[]
			{
				this.femaleStatusInfo.clothesState[7] != 0,
				this.femaleStatusInfo.clothesState[6] != 2
			};
			array6[3] = global::YS_Assist.CheckFlagsArray(flags41);
			referenceInfo11 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_STOP_B_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo11, array6[3]))
			{
				flag = true;
			}
			bool[] flags42 = new bool[]
			{
				base.chaInfo.visibleAll
			};
			if (global::YS_Assist.SetActiveControl(base.objClothes[6], flags42))
			{
				flag = true;
			}
			bool[] flags43 = new bool[]
			{
				this.femaleStatusInfo.clothesState[7] == 0
			};
			array7[0] = global::YS_Assist.CheckFlagsArray(flags43);
			GameObject referenceInfo12 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SBOT_B_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo12, array7[0]))
			{
				flag = true;
			}
			bool[] flags44 = new bool[]
			{
				this.femaleStatusInfo.clothesState[7] == 1
			};
			array7[1] = global::YS_Assist.CheckFlagsArray(flags44);
			referenceInfo12 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SBOT_B_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo12, array7[1]))
			{
				flag = true;
			}
			bool[] flags45 = new bool[]
			{
				this.femaleStatusInfo.clothesState[6] == 0,
				this.femaleStatusInfo.clothesState[7] != 2
			};
			array7[2] = global::YS_Assist.CheckFlagsArray(flags45);
			referenceInfo12 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SBOT_T_DEF);
			if (global::YS_Assist.SetActiveControl(referenceInfo12, array7[2]))
			{
				flag = true;
			}
			bool[] flags46 = new bool[]
			{
				this.femaleStatusInfo.clothesState[6] != 0,
				this.femaleStatusInfo.clothesState[7] != 2
			};
			array7[3] = global::YS_Assist.CheckFlagsArray(flags46);
			referenceInfo12 = base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.S_SBOT_T_NUGE);
			if (global::YS_Assist.SetActiveControl(referenceInfo12, array7[3]))
			{
				flag = true;
			}
		}
		if (!this.femaleClothesInfo.swimType)
		{
			bool[] array12 = new bool[]
			{
				array[0] && this.femaleStatusInfo.siruLv[1] == 1,
				array[0] && this.femaleStatusInfo.siruLv[1] == 2,
				array[0] && this.femaleStatusInfo.siruLv[3] == 1,
				array[0] && this.femaleStatusInfo.siruLv[3] == 2,
				array[1] && this.femaleStatusInfo.siruLv[1] == 1,
				array[1] && this.femaleStatusInfo.siruLv[1] == 2,
				array[1] && this.femaleStatusInfo.siruLv[3] == 1,
				array[1] && this.femaleStatusInfo.siruLv[3] == 2,
				array[2] && this.femaleStatusInfo.siruLv[2] == 1,
				array[2] && this.femaleStatusInfo.siruLv[2] == 2,
				array[2] && this.femaleStatusInfo.siruLv[4] == 1,
				array[2] && this.femaleStatusInfo.siruLv[4] == 2,
				array[3] && this.femaleStatusInfo.siruLv[2] == 1,
				array[3] && this.femaleStatusInfo.siruLv[2] == 2,
				array[3] && this.femaleStatusInfo.siruLv[4] == 1,
				array[3] && this.femaleStatusInfo.siruLv[4] == 2
			};
			GameObject[] array13 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_B02)
			};
			for (int k = 0; k < 16; k++)
			{
				if (global::YS_Assist.SetActiveControl(array13[k], array12[k]))
				{
					flag = true;
				}
			}
			bool[] array14 = new bool[]
			{
				array2[0] && this.femaleStatusInfo.siruLv[2] == 1,
				array2[0] && this.femaleStatusInfo.siruLv[2] == 2,
				array2[0] && this.femaleStatusInfo.siruLv[4] == 1,
				array2[0] && this.femaleStatusInfo.siruLv[4] == 2,
				array2[1] && this.femaleStatusInfo.siruLv[2] == 1,
				array2[1] && this.femaleStatusInfo.siruLv[2] == 2,
				array2[1] && this.femaleStatusInfo.siruLv[4] == 1,
				array2[1] && this.femaleStatusInfo.siruLv[4] == 2,
				array2[2] && this.femaleStatusInfo.siruLv[1] == 1,
				array2[2] && this.femaleStatusInfo.siruLv[1] == 2,
				array2[2] && this.femaleStatusInfo.siruLv[3] == 1,
				array2[2] && this.femaleStatusInfo.siruLv[3] == 2,
				array2[3] && this.femaleStatusInfo.siruLv[1] == 1,
				array2[3] && this.femaleStatusInfo.siruLv[1] == 2,
				array2[3] && this.femaleStatusInfo.siruLv[3] == 1,
				array2[3] && this.femaleStatusInfo.siruLv[3] == 2
			};
			GameObject[] array15 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_B02)
			};
			for (int l = 0; l < 16; l++)
			{
				if (global::YS_Assist.SetActiveControl(array15[l], array14[l]))
				{
					flag = true;
				}
			}
			bool[] array16 = new bool[]
			{
				array3[0] && this.femaleStatusInfo.siruLv[1] == 1,
				array3[0] && this.femaleStatusInfo.siruLv[1] == 2,
				array3[0] && this.femaleStatusInfo.siruLv[3] == 1,
				array3[0] && this.femaleStatusInfo.siruLv[3] == 2,
				array3[1] && this.femaleStatusInfo.siruLv[1] == 1,
				array3[1] && this.femaleStatusInfo.siruLv[1] == 2,
				array3[1] && this.femaleStatusInfo.siruLv[3] == 1,
				array3[1] && this.femaleStatusInfo.siruLv[3] == 2
			};
			GameObject[] array17 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BRA_NUGE_B02)
			};
			for (int m = 0; m < 8; m++)
			{
				if (global::YS_Assist.SetActiveControl(array17[m], array16[m]))
				{
					flag = true;
				}
			}
			bool[] array18 = new bool[]
			{
				array4[0] && this.femaleStatusInfo.siruLv[2] == 1,
				array4[0] && this.femaleStatusInfo.siruLv[2] == 2,
				array4[0] && this.femaleStatusInfo.siruLv[4] == 1,
				array4[0] && this.femaleStatusInfo.siruLv[4] == 2,
				array4[1] && this.femaleStatusInfo.siruLv[2] == 1,
				array4[1] && this.femaleStatusInfo.siruLv[2] == 2,
				array4[1] && this.femaleStatusInfo.siruLv[4] == 1,
				array4[1] && this.femaleStatusInfo.siruLv[4] == 2
			};
			GameObject[] array19 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SHORTS_NUGE_B02)
			};
			for (int n = 0; n < 8; n++)
			{
				if (global::YS_Assist.SetActiveControl(array19[n], array18[n]))
				{
					flag = true;
				}
			}
		}
		else
		{
			bool[] array20 = new bool[]
			{
				array5[0] && this.femaleStatusInfo.siruLv[1] == 1,
				array5[0] && this.femaleStatusInfo.siruLv[1] == 2,
				array5[0] && this.femaleStatusInfo.siruLv[3] == 1,
				array5[0] && this.femaleStatusInfo.siruLv[3] == 2,
				array5[1] && this.femaleStatusInfo.siruLv[1] == 1,
				array5[1] && this.femaleStatusInfo.siruLv[1] == 2,
				array5[1] && this.femaleStatusInfo.siruLv[3] == 1,
				array5[1] && this.femaleStatusInfo.siruLv[3] == 2,
				array5[2] && this.femaleStatusInfo.siruLv[2] == 1,
				array5[2] && this.femaleStatusInfo.siruLv[2] == 2,
				array5[2] && this.femaleStatusInfo.siruLv[4] == 1,
				array5[2] && this.femaleStatusInfo.siruLv[4] == 2,
				array5[3] && this.femaleStatusInfo.siruLv[2] == 1,
				array5[3] && this.femaleStatusInfo.siruLv[2] == 2,
				array5[3] && this.femaleStatusInfo.siruLv[4] == 1,
				array5[3] && this.femaleStatusInfo.siruLv[4] == 2
			};
			GameObject[] array21 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_T_NUGE_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_SWIM_B_NUGE_B02)
			};
			for (int num = 0; num < 16; num++)
			{
				if (global::YS_Assist.SetActiveControl(array21[num], array20[num]))
				{
					flag = true;
				}
			}
			bool[] array22 = new bool[]
			{
				array6[0] && this.femaleStatusInfo.siruLv[1] == 1,
				array6[0] && this.femaleStatusInfo.siruLv[1] == 2,
				array6[0] && this.femaleStatusInfo.siruLv[3] == 1,
				array6[0] && this.femaleStatusInfo.siruLv[3] == 2,
				array6[1] && this.femaleStatusInfo.siruLv[1] == 1,
				array6[1] && this.femaleStatusInfo.siruLv[1] == 2,
				array6[1] && this.femaleStatusInfo.siruLv[3] == 1,
				array6[1] && this.femaleStatusInfo.siruLv[3] == 2,
				array6[2] && this.femaleStatusInfo.siruLv[2] == 1,
				array6[2] && this.femaleStatusInfo.siruLv[2] == 2,
				array6[2] && this.femaleStatusInfo.siruLv[4] == 1,
				array6[2] && this.femaleStatusInfo.siruLv[4] == 2,
				array6[3] && this.femaleStatusInfo.siruLv[2] == 1,
				array6[3] && this.femaleStatusInfo.siruLv[2] == 2,
				array6[3] && this.femaleStatusInfo.siruLv[4] == 1,
				array6[3] && this.femaleStatusInfo.siruLv[4] == 2
			};
			GameObject[] array23 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_T_NUGE_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_TOP_B_NUGE_B02)
			};
			for (int num2 = 0; num2 < 16; num2++)
			{
				if (global::YS_Assist.SetActiveControl(array23[num2], array22[num2]))
				{
					flag = true;
				}
			}
			bool[] array24 = new bool[]
			{
				array7[0] && this.femaleStatusInfo.siruLv[2] == 1,
				array7[0] && this.femaleStatusInfo.siruLv[2] == 2,
				array7[0] && this.femaleStatusInfo.siruLv[4] == 1,
				array7[0] && this.femaleStatusInfo.siruLv[4] == 2,
				array7[1] && this.femaleStatusInfo.siruLv[2] == 1,
				array7[1] && this.femaleStatusInfo.siruLv[2] == 2,
				array7[1] && this.femaleStatusInfo.siruLv[4] == 1,
				array7[1] && this.femaleStatusInfo.siruLv[4] == 2,
				array7[2] && this.femaleStatusInfo.siruLv[1] == 1,
				array7[2] && this.femaleStatusInfo.siruLv[1] == 2,
				array7[2] && this.femaleStatusInfo.siruLv[3] == 1,
				array7[2] && this.femaleStatusInfo.siruLv[3] == 2,
				array7[3] && this.femaleStatusInfo.siruLv[1] == 1,
				array7[3] && this.femaleStatusInfo.siruLv[1] == 2,
				array7[3] && this.femaleStatusInfo.siruLv[3] == 1,
				array7[3] && this.femaleStatusInfo.siruLv[3] == 2
			};
			GameObject[] array25 = new GameObject[]
			{
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_B_NUGE_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_DEF_B02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_F01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_F02),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_B01),
				base.chaInfo.GetReferenceInfo(global::CharReference.RefObjKey.L_BOT_T_NUGE_B02)
			};
			for (int num3 = 0; num3 < 16; num3++)
			{
				if (global::YS_Assist.SetActiveControl(array25[num3], array24[num3]))
				{
					flag = true;
				}
			}
		}
		for (int num4 = 0; num4 < base.objAccessory.Length; num4++)
		{
			bool[] flags47 = new bool[]
			{
				base.chaInfo.visibleAll,
				this.femaleStatusInfo.showAccessory[num4]
			};
			if (global::YS_Assist.SetActiveControl(base.objAccessory[num4], flags47))
			{
				flag = true;
			}
		}
		if (flag)
		{
			base.chaInfo.updateShape = true;
		}
	}

	// Token: 0x06000E7B RID: 3707 RVA: 0x00067E60 File Offset: 0x00066060
	public override void UpdateSub()
	{
		this.UpdateSiru(false);
	}

	// Token: 0x06000E7C RID: 3708 RVA: 0x00067E6C File Offset: 0x0006606C
	public override void LateUpdateSub()
	{
		if (this.resetupDynamicBoneBust)
		{
			global::CharFemale charFemale = base.chaInfo as global::CharFemale;
			charFemale.ReSetupDynamicBone();
			charFemale.UpdateBustSoftnessAndGravity();
			this.resetupDynamicBoneBust = false;
		}
		if (this.updateBustSize)
		{
			float rate = 1f;
			if (0.5f > this.femaleCustomInfo.shapeValueBody[1])
			{
				rate = Mathf.InverseLerp(0f, 0.5f, this.femaleCustomInfo.shapeValueBody[1]);
			}
			for (int i = 0; i < this.bustNormal.Length; i++)
			{
				if (this.bustNormal[i] != null)
				{
					this.bustNormal[i].Blend(rate);
				}
			}
			this.updateBustSize = false;
		}
	}

	// Token: 0x04000F23 RID: 3875
	public global::CharFemaleFile femaleFile;

	// Token: 0x04000F24 RID: 3876
	public global::CharFileInfoCustomFemale femaleCustomInfo;

	// Token: 0x04000F25 RID: 3877
	public global::CharFileInfoClothesFemale femaleClothesInfo;

	// Token: 0x04000F26 RID: 3878
	public global::CharFileInfoStatusFemale femaleStatusInfo;

	// Token: 0x04000F27 RID: 3879
	public GameObject[] _objSiru = new GameObject[Enum.GetNames(typeof(global::CharDefine.SiruObjKind)).Length];

	// Token: 0x04000F28 RID: 3880
	public byte[] _siruNewLv;

	// Token: 0x04000F29 RID: 3881
	public bool resetupDynamicBoneBust;

	// Token: 0x04000F2A RID: 3882
	public readonly int[] bustChangeSettingPtn = new int[1];

	// Token: 0x04000F2B RID: 3883
	public global::BustNormal[] _bustNormal = new global::BustNormal[4];

	// Token: 0x04000F2C RID: 3884
	public bool updateBustSize;

	// Token: 0x0200025F RID: 607
	public enum DynamicBoneKind
	{
		// Token: 0x04000F35 RID: 3893
		BreastL,
		// Token: 0x04000F36 RID: 3894
		BreastR,
		// Token: 0x04000F37 RID: 3895
		HipL,
		// Token: 0x04000F38 RID: 3896
		HipR
	}
}
